import Myalert from './component/Alert.vue'

export default{
    // 插件通常会为 Vue 添加全局功能，一般是添加全局方法/全局指令/过滤器等
    // Vue 插件有一个公开方法 install ，通过 install 方法给 Vue 添加全局功能
    // 通过全局方法 Vue.use() 使用插件，它需要在你调用 new Vue() 启动应用之前完成.
    install:function(Vue,options){
      // 1. 添加全局方法或属性
      Vue.myGlobalMethod = function () {
        alert("添加全局方法或属性")
      }
  
      // 2. 添加全局资源
    //   Vue.directive('my-directive', {
    //     inserted: function (el, binding) {
    //       el.innerHTML = binding.value
    //     }
    //   })

      Vue.directive('drag',{
        inserted(el,binding){
           el.style.position="absolute";
           el.style.left=binding.arg.left+"px";
           el.style.top = binding.arg.top+"px";
           el.onmousedown=function(e){
             let x= e.clientX-el.offsetLeft;
             let y= e.clientY-el.offsetTop;
    
             document.onmousemove=function(eve){
               el.style.left = eve.clientX-x+"px";
               el.style.top = eve.clientY-y+"px";
             }
             document.onmouseup=function(){
               document.onmousemove = document.onmouseup=null;
             }
           }
        }
    })
  
      // 3. 注入组件选项
      Vue.mixin({
        created: function () {
          // 逻辑...
        }
      })
  
      // 4. 添加实例方法，可以传参    
      // 获取一个dom
      let alert = Vue.extend(Myalert);
      let $vm=new alert();
      let myDiv=$vm.$mount().$el;//获取dom
      document.body.appendChild(myDiv)  
      // 添加弹框方法
      Vue.prototype.$myAlert = function () {
        $vm.show=true
      }
    }
}